package main.java.sq;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;



public class Mercado  extends Selecciones implements Accion{
	private int idJugador;
	private boolean amarilla;
	private boolean roja;
	private boolean valla;
	public Mercado(){
		idJugador=-1;
		valla=false;
	}
	@Override
	public void ejecutarAccion() {
		System.out.println("Mercado\r\n");
		Partida partida=Partida.getPartida();
		Jugador jugador=partida.getJugadorPorId(idJugador);
		Hangar hangar=jugador.getHangar();
		hangar.eliminarMinerales(seleccionaMineral(1,false,hangar.getMinerales()));
		hangar.eliminarMinerales(seleccionaMineral(2,false,hangar.getMinerales()));
		hangar.eliminarMinerales(seleccionaMineral(3,false,hangar.getMinerales()));
		hangar.addMineral(seleccionaMineral(1,true,tiposdeMineral()));
		hangar.addMineral(seleccionaMineral(2,true,tiposdeMineral()));
		
		
	}
	
	public List<Minerales> tiposdeMineral(){
		List<Minerales> l=new ArrayList<Minerales>();
		l.add(Minerales.Duranio);
		l.add(Minerales.Molybdeno);
		l.add(Minerales.Neutronio);
		l.add(Minerales.Tritanio);
		return l;
	}
	
	@Override
	public int getIdJugador() {
		
		return idJugador;
	}
	@Override
	public void setIdJugador(int idJugador) {
		this.idJugador=idJugador;
		
	}
	@Override
	public boolean getAmarilla() {
		return this.amarilla;
	}
	
	public String toString(){
		return "Mercado";
	}

	@Override
	public boolean getRoja() {
		return this.roja;
	}

	@Override
	public boolean getTieneConsul() {
		return this.getIdJugador()>0;
	}

	@Override
	public void setAmarilla(boolean amarilla) {
		this.amarilla = amarilla;
	}

	@Override
	public void setRoja(boolean roja) {
		this.roja = roja;
	}

	@Override
	public boolean esRealizable() {
		boolean realizable=false;
		boolean tieneMercado=false;
		boolean minMinerales=false;
		Partida partida=Partida.getPartida();
		Jugador jugador=partida.getJugadorPorId(idJugador);
		Iterator<Planeta> itPlanetas=jugador.getPlanetasControlados().iterator();
		while(itPlanetas.hasNext()){
			if(itPlanetas.next().isMercado()){
				tieneMercado=true;
				break;
			}
		}
		minMinerales=jugador.getHangar().getMinerales().size()>=3;
		realizable=minMinerales && tieneMercado;
		return realizable;
	}
	
	public Planeta seleccionaSector(List<Planeta> lp) {
		return super.seleccionaSector(lp);
	}
	@Override
	public boolean getValla() {
		return valla;
	}
	@Override
	public void setValla(boolean valla) {
		this.valla=valla;
		
	}

}
